#include "Scheduler.h"
#include "LogManager.h"

Scheduler::Scheduler(void)
{
    state = STATE_STOPED;
}

Scheduler::~Scheduler(void)
{
}

void Scheduler::Init(void)
{
    rsdTask.InitTask();
    spTask.InitTask();
    esTask.InitTask();
    clrTask.InitTask();
    state = STATE_INITED;
}

void Scheduler::Start(void)
{
    rsdTask.StartTask();
    spTask.StartTask();
    esTask.StartTask();
    clrTask.StartTask();
    state = STATE_STARTED;
}

void Scheduler::Stop(void)
{
    rsdTask.StopTask();
    spTask.StopTask();
    esTask.StopTask();
    clrTask.StopTask();
    rsdTask.WaitForStop();
    spTask.WaitForStop();
    esTask.WaitForStop();
    clrTask.StopTask();
    state = STATE_STOPED;
}

SCHEDULER_STATE Scheduler::GetState()
{
    return state;
}
